//go:build wireinject
// +build wireinject

package app

import (
	"github.com/google/wire"
	"payme3000/api_gateway/internal/config"
	"payme3000/api_gateway/internal/logic"
	"payme3000/api_gateway/internal/repository"
	"payme3000/api_gateway/internal/server"
)

// wire.go
func Initialize() (*Application, error) {
	wire.Build(
		NewApplication,
		// required
		config.NewConfig,
		repository.NewRepository,
		logic.NewLogic,
		server.NewServer,
		// customized
	)

	return &Application{}, nil
}
